#!/usr/bin/env python
PACKAGE = "mpc_follower"

from dynamic_reconfigure.parameter_generator_catkin import *


gen = ParameterGenerator()

gen.add("mpc_prediction_horizon", int_t, 0, "A int parameter", 0, 0, 500)
gen.add("mpc_prediction_dt", double_t, 0, "A double parameter", 0.0, 0.0, 1.0)
gen.add("mpc_weight_lat_error", double_t, 0, "A double parameter", 0.0, 0.0, 10.)
gen.add("mpc_weight_heading_error", double_t, 0, "A double parameter", 0.0, 0.0, 10.0)
gen.add("mpc_weight_heading_error_squared_vel", double_t, 0, "A double parameter", 0.0, 0.0, 10.0)
gen.add("mpc_weight_steering_input", double_t, 0, "A double parameter", 0.0, 0.0, 10.0)
gen.add("mpc_weight_steering_input_squared_vel", double_t, 0, "A double parameter", 0.0, 0.0, 10.0)
gen.add("mpc_weight_lat_jerk", double_t, 0, "A double parameter", 0.0, 0.0, 10.0)
gen.add("mpc_weight_steer_rate", double_t, 0, "A double parameter", 0.0, 0.0, 10.0)
gen.add("mpc_weight_steer_acc", double_t, 0, "A double parameter", 0.0, 0.0, 10.0)
gen.add("mpc_weight_terminal_lat_error", double_t, 0, "A double parameter", 0.0, 0.0, 10.0)
gen.add("mpc_weight_terminal_heading_error", double_t, 0, "A double parameter", 0.0, 0.0, 10.0)
gen.add("mpc_zero_ff_steer_deg", double_t, 0, "A double parameter", 0.0, 0.0, 30.0)
# gen.add("input_delay", double_t, 0, "A double parameter", 0.24, 0.0, 3.0)
# gen.add("vehicle_model_steer_tau", double_t, 0, "A double parameter", 0.3, 0.0, 3.0)
# gen.add("steer_lim_deg", double_t, 0, "A double parameter", 40.0, 0.0, 90.0)
# gen.add("steer_rate_lim_deg", double_t, 0, "A double parameter", 600.0, 0.0, 1200.0)
# gen.add("steering_lpf_cutoff_hz", double_t, 0, "A double parameter", 3.0, 0.0, 10.0)
gen.add("acceleration_limit", double_t, 0, "acceleration limit for trajectory velocity modification [m/ss]", 2.0, 0.01, 10.0)
gen.add("velocity_time_constant", double_t, 0, "velocity dynamics time constant  for trajectory velocity modification [s]", 0.3, 0.01, 10.0)


exit(gen.generate(PACKAGE, "mpc_follower", "MPCFollower"))
